<?php
class Grid 
{
    var $Grid;
    
    /**
     * createNewGrid
     * 
     * Crée un tableau selon les dimensions $x et $y.
     * 
     * @param int $number Nombre de case sur l'axe X et Y
     * @return array $table Le tableau créé
     */    
    public function createNewGrid($number)
    {
        for ($coordX = 0; $coordX < $number; $coordX++)
        {
            for ($coordY = 0; $coordY < $number; $coordY++)
            {
                $table[$coordX][$coordY] = 0;  
            }            
        }
        
        return $table;
    }
    
    /**
     * drawGrid
     * 
     * Dessine le tableau spécifié au format HTML
     * 
     * @param array $table Le tableau a dessiner
     * @return string Format du tableau HTML retourné
     */
    public function drawGrid($table) 
    {
        $count = count($table);
        $x = 0;
        $y = 0;
        
        echo '<table border="1" align="center">';
        echo '<tbody>';
        
        if($x == 0)
        {
            echo '<tr>';
            echo '<th></th>';
            
            for($i = 0; $i < $count; $i++)
            {
                echo '<th>'.$this->getCoordLetter($i).'</th>';   
            }        
            
            echo '</tr>';
        }
        
        foreach ($table as $tableX)
        {

            if($y == $count)
            {
                $y = 0;
            }

            echo '<tr height="30" align="center">';
                        
            foreach ($tableX as $tableY)
            {
                if($y == 0)
                {
                    echo '<th>'.($x + 1).'</th>';
                }
                echo '<td width="30" title="['.$y.';'.$x.']"></td>';                
                $y++;
            }
            
            echo '</td></tr>';
            $x++;

        }
        
        echo '</tbody>';
        echo '</table>';
        
    }
    
    /**
     * getCoordLetter
     * 
     * Retourne la lettre correspondant à l'axe X
     * 
     * @param type $coord Le coordonnée de l'axe X
     * @return string|boolean Retourne la lettre
     */
    public function getCoordLetter($coord)
    {
        if($coord < 26)
        {
            $letters = array('A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L',
            'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z');
            
            return $letters[$coord];
        }
        else
        {
            return false;
        }        
    }    
}
?>
